/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_Studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once


#include "框架/工作区/节点构建.h"
#include "节点/逻辑/执行节点.h"



C_节点面板* f_节点构建_手动执行(S_UI创建环境& ctx, C_节点基类* node = 0, C_节点树* tree = nullptr);
void		f_节点重置_手动执行(C_节点面板* plane, C_节点基类* node);


//C_节点面板* f_节点构建_For头(S_UI创建环境& ctx, C_节点基类* node = 0, C_节点树* tree = nullptr);
//void		f_节点重置_For头(C_节点面板* plane, C_节点基类* node);




C_节点面板* f_节点构建_循环迭代(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_循环迭代(C_节点面板* plane, C_节点基类* node);

C_节点面板* f_节点构建_循环(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_循环(C_节点面板* plane, C_节点基类* node);

C_节点面板* f_节点构建_迭代(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_迭代(C_节点面板* plane, C_节点基类* node);

C_节点面板* f_节点构建_循环尾(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_循环尾(C_节点面板* plane, C_节点基类* node);



C_节点面板* f_节点构建_输入组(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_输入组(C_节点面板* plane, C_节点基类* node);

C_节点面板* f_节点构建_输出组(S_UI创建环境& ctx, S_设备环境& view_ctx, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_输出组(C_节点面板* plane, C_节点基类* node);

C_节点面板* f_节点构建_跳过(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_跳过(C_节点面板* plane, C_节点基类* node);

C_节点面板* f_节点构建_分支判断(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_分支判断(C_节点面板* plane, C_节点基类* node);

C_节点面板* f_节点构建_包(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_包(C_节点面板* plane, C_节点基类* node);




C_节点面板* f_节点构建_插座转接(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_插座转接(C_节点面板* plane, C_节点基类* node);

C_节点面板* f_节点构建_面板框(S_UI创建环境& ctx, S_设备环境& ctx_3d, C_节点基类* node, C_节点树* tree = nullptr);
void		f_节点重置_面板框(C_节点面板* plane, C_节点基类* node);



bool f_逻辑节点重构(C_节点面板** plane, C_节点基类* node, S_UI创建环境* ctx);





